var mongoose = require('mongoose');

// MongoDB连接配置
const mongoConfig = {
  useNewUrlParser: true,
  useUnifiedTopology: true,
  serverSelectionTimeoutMS: 15000, // 服务器选择超时时间
  socketTimeoutMS: 45000, // Socket超时时间
  connectTimeoutMS: 15000, // 连接超时时间
  maxPoolSize: 10, // 连接池大小
  minPoolSize: 1, // 最小连接池大小
  maxIdleTimeMS: 30000, // 最大空闲时间
  retryWrites: true, // 重试写入
  retryReads: true, // 重试读取
  bufferCommands: false // 禁用缓冲命令，避免超时问题
};

// 连接MongoDB
mongoose.connect('mongodb+srv://2334231668:xin123666@cluster0.13va5ah.mongodb.net/2410b2', mongoConfig)
  .then(() => {
    console.log('✅ MongoDB连接成功');
  })
  .catch((err) => {
    console.error('❌ MongoDB连接失败:', err.message);
  });

// 监听连接事件
mongoose.connection.on('connected', () => {
  console.log('✅ MongoDB已连接');
});

mongoose.connection.on('error', (err) => {
  console.error('❌ MongoDB连接错误:', err.message);
});

mongoose.connection.on('disconnected', () => {
  console.log('⚠️ MongoDB连接断开，尝试重连...');
});

// 监听进程退出事件，优雅关闭连接
process.on('SIGINT', () => {
  mongoose.connection.close(() => {
    console.log('MongoDB连接已关闭');
    process.exit(0);
  });
});

module.exports = mongoose;



